class Solution {
    /*
    容易写错的一个地方，mid 不能跟 left 比较而要跟 right 比较，因为 mid 始终小于 right 而可能等于 left，如果跟 left 比较就是跟自己比较，跟自己比较无法判断是当前 mid（left）是转折点还是转折点的前一个点，因为两种情况下都是 nums[mid] == nums[left]。
    */
    public int findMin(int[] nums) {
        int l = 0, r = nums.length-1;
        while( l<r ){
            int mid = (l+r)/2;
            if( nums[r] > nums[mid]){
                r = mid;
            }
            else
                l = mid+1;
        }
        return nums[l];
    }
}